package com.AdvancedDemos.LearnVariousAPI.系统类;

import java.util.Arrays;

public class LearnSystem {
    public static void main(String[] args) {
        /**
         * System代表程序所在的系统,也是一个工具类
         *
         * public static void exit(int status) --- 终止当前运行的虚拟机,参数status用作状态代码,按照惯例,非零状态代码表示异常终止
         * public static long currentTimeMillis() --- 返回当前系统的时间毫秒值形式,指的是从1970-1-1 0:0:0 (C语言的生日) 开始走到此刻的总的毫秒值1s = 1000ms
         */


        long time = System.currentTimeMillis();//通常用于测试代码运行性能
        System.out.println("time = " + time);
        for (int i = 0; i < 10000; i++) {
            System.out.println("输出了:" + i);
        }
        long time2 = System.currentTimeMillis();
        System.out.println("time2 = " + time2);
        System.out.println("time2 - time = " + (time2 - time) / 1000.0 + "s");//两次系统时间差即为程序运行的时间


//        System.exit(0);//人为终止虚拟机,其内部调用了Runtime.exit(...)


        System.out.println("-----------");
        //补充:数组拷贝函数
        //static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
        //参数1:src数组源数组(要拷贝的元素是从哪一个数组来的)
        //餐数2:srcPos从数据源数组中哪一个索引位置开始拷贝
        //参数3:dest目的地数值
        //参数4:destPos要拷贝到目的地数组的哪一个索引位置
        //参数5:length拷贝长度(元素的个数)
        //应当注意不能下标越界
        int[] source = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
        int[] destination = new int[10];
        System.arraycopy(source, 0, destination, 3, 5);
        System.out.println(Arrays.toString(destination));//[0, 0, 0, 1, 2, 3, 4, 5, 0, 0]


    }
}
